1. The Field of the Invention
The invention relates to apparatuses, methods, and systems for controlling arrays of storage devices. Specifically, the invention relates to apparatus, methods, and systems for redundantly controlling a storage array.
2. The Relevant Art
RAID systems (i.e., systems using Redundant Arrays of Independent Disks) are used to store large quantities of data within computer and storage networks. RAID systems are designed to be fault resistant and fault tolerant by distributing data among redundant arrays of independent disks usually with some form of error coding. Storage device redundancy and redundant data encoding facilitate continued operation and/or data recovery in the event of a failure within a particular storage device.
In addition to redundant storage devices, RAID systems often deploy redundant controllers to facilitate continued operation after a particular controller becomes inoperable. In addition to handling failures and controller redundancy properly, RAID controllers are typically required to receive write requests and associated data from a host computer, acknowledge reception of the data, stripe the data over a plurality of drives, and send the data to a storage array at a high throughput rate. As a result, RAID controllers are highly specialized and complex devices.
The specialized nature of RAID controllers, particularly redundant RAID controllers presents several challenges. In many redundant configurations, a secondary RAID controller waits in a standby or load sharing mode, ready to receive commands from the host computer in case a primary RAID controller is busy or fails. In some configurations, the secondary RAID controller performs no other function than waiting to take control in case of failure. The secondary RAID controller, although useful, adds significant cost to the RAID system.
RAID controllers are typically quite reliable in that they are typically solid state solutions with highly reliable components. In an attempt to reduce system cost, some administrators may forego using a redundant controller. Foregoing a controller is a risky proposition in that losses from downtime frequently exceed the cost of an entire system. Nevertheless, a demand for single controller solutions currently exists within data processing systems.
Furthermore, as specialized devices with specialized hardware to increase throughput, RAID controllers tend to fall out of date quickly—particularly as a system is updated and upgraded. Updating redundant RAID controllers requires purchasing the controllers in pairs. The added cost of the secondary RAID controller may hinder RAID system users from purchasing new controllers that could add significant functionality to their RAID systems. In addition, prolonging upgrades of old RAID controllers may place the controllers at additional risk for obsolescence or failure.
Another disadvantage of currently available storage control solutions is that, as solid state devices, RAID controllers are often fixed in their feature set at the time of manufacture and typically provide no facility for enhanced or augmented services such as advanced data recovery services, diagnostic services, firmware update services, and the like.
Given the disadvantages of currently available storage control solutions, what is needed is a cost-effective apparatus, method, and system for redundant control of a RAID system without using a dedicated secondary controller. Such an apparatus and method would reduce the cost of providing, upgrading, and augmenting RAID functionality within storage systems.